-
Notifications
You must be signed in to change notification settings - Fork 191
4.10.0 #2657
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4.10.0 #2657
Conversation
0caadbe to
4ed6065
Compare
8447e23 to
6cc8c41
Compare
6cc8c41 to
8ab7d71
Compare
bac7d67 to
ea50ddf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR updates the AWS SDK v2 from version 2.33.12 to 2.37.2, adapts to breaking API changes in the SDK, and adds support for unquoted ETags in conditional request headers.
- Updates ChecksumTrailerProvider constructor to include new required parameters for AWS SDK v2 compatibility
- Adds support for unquoted ETags in if-match and if-none-match headers to match S3 behavior
- Updates changelog with release notes for version 4.10.0
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pom.xml | Bumps AWS SDK v2 from 2.33.12 to 2.37.2 |
| server/src/test/kotlin/com/adobe/testing/s3mock/ChecksumTestUtil.kt | Adapts ChecksumTrailerProvider constructor call to new API with additional parameters |
| server/src/main/java/com/adobe/testing/s3mock/service/ObjectService.java | Implements unquoted ETag handling in if-match and if-none-match conditional headers |
| integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/GetPutDeleteObjectIT.kt | Adds integration tests for unquoted ETag support in conditional headers |
| CHANGELOG.md | Updates changelog to document version 4.10.0 release and associated changes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| var setMatch = match != null && !match.isEmpty(); | ||
| if (setMatch) { | ||
| if (match.contains(WILDCARD_ETAG) || match.contains(WILDCARD) || match.contains(etag)) { | ||
| var unquotedEtag = etag.replace("\"", ""); |
Copilot
AI
Nov 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The unquotedEtag is computed even when it might not be needed. Consider computing it only when the initial checks with the quoted etag fail, to avoid unnecessary string operations when the quoted etag matches directly.
| var setNoneMatch = noneMatch != null && !noneMatch.isEmpty(); | ||
| if (setNoneMatch) { | ||
| if (noneMatch.contains(WILDCARD_ETAG) || noneMatch.contains(WILDCARD) || noneMatch.contains(etag)) { | ||
| var unquotedEtag = etag.replace("\"", ""); |
Copilot
AI
Nov 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The logic for creating unquotedEtag is duplicated on lines 371 and 396. Consider extracting this to a helper method or computing it once at the beginning of the method (line 358-359 area) to avoid duplication.
Description
Related Issue
Tasks